/*
 *  103协议客户端基类
 * */

/*
 * 各厂家接口基类
 * 使用标准以太网IEC103协议可以使用深圳南瑞接口
 */

#ifndef COMMBASE_H
#define COMMBASE_H

#include <QDebug>
#include <QString>
#include "PanelBill.h"
#include "IEC103Type.h"

class CommBase {

public:
    CommBase(){}
    ~CommBase(){}

    // 连接设备, 用户输入参数，通信参数
    virtual void connectDevice(QString devAddr, QString devPort, QString localAddr, QString localPort) = 0;

    // 读取定值操作过程，实现自动发送接收解析
    virtual void readDeviceAll() = 0;

    //获取解析完的结果全部 返回值形式：组号-组具体信息, 接收 sig_taskFinished() 信号传出的结果也可以
    virtual void getAllBillInfo(QMap<QString, BillTableStruct> &tablesInfo) = 0;

    virtual void disConnectDevice() = 0;

    // 展示结果
    virtual void showTable() = 0;

    virtual void showTableBase(QMap<QString, BillTableStruct> &ret)
    {
        foreach (BillTableStruct it, ret) {
            qDebug() << "组号 = " << it.groupNo << "组名 = " << it.groupName << " 值 = " << it.billRealValueList;
        }
    }

    //设置组号16进制数字字符，部分厂家协议不提供组信息，需要自己先拿到设备各组条目模板
    virtual void setBillGroup(QStringList& ) = 0;

    virtual QStringList getErrorLog() = 0;
};

#endif // COMMBASE_H
